package com.action;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;

import com.logic.MembresiaLogic;
import com.opensymphony.xwork2.ActionSupport;
import com.persistence.Address;
import com.persistence.Contactinfo;
import com.persistence.Membership;
import com.persistence.Primarymember;

public class MembresiaAction extends ActionSupport {

	private String fechaUltimaRenovacion;
	private String miembroDesde;
	private Short tipoMiembro;
	private int id;
	/*FIN MEMBERSHIP*/
	
	

	private String apellidos;
	private String nombres;
	private Short sexo;
	private String cumpleanos;
	
	/*FIN PRIMARY MEMBER*/
	
	private String ncalle;
	private String ndepartamento;
	private String zipCode;
	private String ciudad;
	private String pais;
	private String estado;
	private String nombreCalle;
	
	/*FIN ADDRESS*/
	
	private String tcasa;
	private String ttrabajo;
	private String celular;
	private String email;
	
	/*FIN CONTACTINFO*/
	
	
	
	private List<Membership> membresias;
	private Integer codigoEliminar;
	private Integer  codigoModificar; // Cristian
	
	private Membership membresia;


	/*PARA TRABAJAR*/

	

	public Membership getMembresia() {
		return membresia;
	}

	public void setMembresia(Membership membresia) {
		this.membresia = membresia;
	}

	public Integer getCodigoModificar() {
		return codigoModificar;
	}

	public void setCodigoModificar(Integer codigoModificar) {
		this.codigoModificar = codigoModificar;
	}

	public Integer getCodigoEliminar() {
		return codigoEliminar;
	}

	public void setCodigoEliminar(Integer codigoEliminar) {
		this.codigoEliminar = codigoEliminar;
	}

	public List<Membership> getMembresias() {
		return membresias;
	}

	public void setMembresias(List<Membership> membresias) {
		this.membresias = membresias;
	}

	private MembresiaLogic membresialogic = new MembresiaLogic();

	public String getFechaUltimaRenovacion() {
		return fechaUltimaRenovacion;
	}

	public void setFechaUltimaRenovacion(String fechaUltimaRenovacion) {
		this.fechaUltimaRenovacion = fechaUltimaRenovacion;
	}

	public String getMiembroDesde() {
		return miembroDesde;
	}

	public void setMiembroDesde(String miembroDesde) {
		this.miembroDesde = miembroDesde;
	}

	public Short getTipoMiembro() {
		return tipoMiembro;
	}

	public void setTipoMiembro(Short tipoMiembro) {
		this.tipoMiembro = tipoMiembro;
	}

	public String getApellidos() {
		return apellidos;
	}

	public void setApellidos(String apellidos) {
		this.apellidos = apellidos;
	}

	public String getNombres() {
		return nombres;
	}

	public void setNombres(String nombres) {
		this.nombres = nombres;
	}

	public Short getSexo() {
		return sexo;
	}

	public void setSexo(Short sexo) {
		this.sexo = sexo;
	}

	public String getCumpleanos() {
		return cumpleanos;
	}

	public void setCumpleanos(String cumpleanos) {
		this.cumpleanos = cumpleanos;
	}

	public String getNcalle() {
		return ncalle;
	}

	public void setNcalle(String ncalle) {
		this.ncalle = ncalle;
	}

	public String getNdepartamento() {
		return ndepartamento;
	}

	public void setNdepartamento(String ndepartamento) {
		this.ndepartamento = ndepartamento;
	}

	public String getZipCode() {
		return zipCode;
	}

	public void setZipCode(String zipCode) {
		this.zipCode = zipCode;
	}

	public String getCiudad() {
		return ciudad;
	}

	public void setCiudad(String ciudad) {
		this.ciudad = ciudad;
	}

	public String getPais() {
		return pais;
	}

	public void setPais(String pais) {
		this.pais = pais;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public String getNombreCalle() {
		return nombreCalle;
	}

	public void setNombreCalle(String nombreCalle) {
		this.nombreCalle = nombreCalle;
	}

	public String getTcasa() {
		return tcasa;
	}

	public void setTcasa(String tcasa) {
		this.tcasa = tcasa;
	}

	public String getTtrabajo() {
		return ttrabajo;
	}

	public void setTtrabajo(String ttrabajo) {
		this.ttrabajo = ttrabajo;
	}

	public String getCelular() {
		return celular;
	}

	public void setCelular(String celular) {
		this.celular = celular;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String insertar() {
		Address direccion = new Address();

		System.out.println("FECHA " + cumpleanos);
		System.out.println("FECHA " + fechaUltimaRenovacion);
		System.out.println("FECHA " + miembroDesde);

		direccion.setStreetno(ncalle);
		direccion.setAptno(ndepartamento);
		direccion.setZipcode(zipCode);
		direccion.setCity(ciudad);
		direccion.setCountry(pais);
		direccion.setState(estado);
		direccion.setStreetname(nombreCalle);
		System.out.println("CREO CALLE");

		Contactinfo contactinfo = new Contactinfo();
		contactinfo.setCellno(tcasa);
		contactinfo.setEmail(email);
		contactinfo.setWorkno(ttrabajo);
		contactinfo.setHomeno(tcasa);

		System.out.println("CREO CONTACTO");

		Primarymember primarymember = new Primarymember();
		primarymember.setContactinfoBean(contactinfo);
		primarymember.setAddressBean(direccion);
		primarymember.setLastname(apellidos);
		primarymember.setFirstname(nombres);
		primarymember.setGender(sexo);
		System.out.println("BIRTHDAY  "
				+ convertirAFecha(cumpleanos, "yyyy/mm/dd", null));
		primarymember.setBirthdate(convertirAFecha(cumpleanos, "yyyy-mm-dd",
				null));

		System.out.println("CREO PRIMARY ME");

		Membership membership = new Membership();
		membership.setLastrenewaldate(convertirAFecha(fechaUltimaRenovacion,
				"yyyy-mm-dd", null));
		membership.setMembershipType(tipoMiembro);
		membership.setMembersince(convertirAFecha(miembroDesde, "yyyy-mm-dd",
				null));
		membership.setPrimarymemberBean(primarymember);
		System.out.println("CREO MEMBER");
		membresialogic.grabarOactualizar(membership);

		return "inserto";

	}
	
	public String listar() {
		membresias = membresialogic.getAll();
		return SUCCESS;
	}

	// Este es un metodo
	public static Date convertirAFecha(String fechaString, String formato,
			Locale localidad) {
		SimpleDateFormat sdf = null;

		Date resultado = Calendar.getInstance().getTime();
		try {

			if (localidad != null)
				sdf = new SimpleDateFormat(formato, localidad);
			else
				sdf = new SimpleDateFormat(formato);

			resultado = sdf.parse(fechaString);

		} catch (ParseException e) {

		}
		return resultado;
	}

	public String eliminar() {
		System.out.println("CODIGO ELIMINAR " + codigoEliminar);
		membresialogic.eliminar(codigoEliminar);

		return SUCCESS;
	}
	
	/**
	 * INICIO CRISTIAN
	 * 
	 **/
	public String cargaModificar(){
		System.out.print("CODIGO MODIFICAR" + codigoModificar);
		try {
			membresia = membresialogic.buscaPorCodigo(codigoModificar);
			
			System.out.println("MEmbresia getAptno() " + membresia.getPrimarymemberBean().getAddressBean().getAptno() );
			System.out.println("MEmbresia getCity() " + membresia.getPrimarymemberBean().getAddressBean().getCity() );
			System.out.println("MEmbresia getCountry()" + membresia.getPrimarymemberBean().getAddressBean().getCountry() );
			System.out.println("MEmbresia getState()" + membresia.getPrimarymemberBean().getAddressBean().getState() );
			System.out.println("MEmbresia getStreetname()" + membresia.getPrimarymemberBean().getAddressBean().getStreetname() );
			System.out.println("MEmbresia getStreetno()" + membresia.getPrimarymemberBean().getAddressBean().getStreetno() );
			System.out.println("MEmbresia getZipcode()  " + membresia.getPrimarymemberBean().getAddressBean().getZipcode() );
			System.out.println("MEmbresia getId() " + membresia.getPrimarymemberBean().getAddressBean().getId() );
			System.out.println("MEmbresia getAptno( " + membresia.getPrimarymemberBean().getAddressBean().getAptno() );
			
		} catch (Exception e) {
			
			e.printStackTrace();
		}
		return "encontro";
	}
	
	
	public String actualizar(){
		Address direccion = new Address();

		System.out.println("FECHA " + cumpleanos);
		System.out.println("FECHA " + fechaUltimaRenovacion);
		System.out.println("FECHA " + miembroDesde);

		direccion.setStreetno(ncalle);
		direccion.setAptno(ndepartamento);
		direccion.setZipcode(zipCode);
		direccion.setCity(ciudad);
		direccion.setCountry(pais);
		direccion.setState(estado);
		direccion.setStreetname(nombreCalle);
		System.out.println("CREO CALLE");

		Contactinfo contactinfo = new Contactinfo();
		contactinfo.setCellno(tcasa);
		contactinfo.setEmail(email);
		contactinfo.setWorkno(ttrabajo);
		contactinfo.setHomeno(tcasa);

		System.out.println("CREO CONTACTO");

		Primarymember primarymember = new Primarymember();
		primarymember.setContactinfoBean(contactinfo);
		primarymember.setAddressBean(direccion);
		primarymember.setLastname(apellidos);
		primarymember.setFirstname(nombres);
		primarymember.setGender(sexo);
		System.out.println("BIRTHDAY  "
				+ convertirAFecha(cumpleanos, "yyyy/mm/dd", null));
		primarymember.setBirthdate(convertirAFecha(cumpleanos, "yyyy-mm-dd",
				null));

		System.out.println("CREO PRIMARY ME");

		Membership membership = new Membership();
		membership.setLastrenewaldate(convertirAFecha(fechaUltimaRenovacion,
				"yyyy-mm-dd", null));
		membership.setMembershipType(tipoMiembro);
		membership.setMembersince(convertirAFecha(miembroDesde, "yyyy-mm-dd",
				null));
		membership.setPrimarymemberBean(primarymember);
		System.out.println("ID:"+id);
		
		membership.setId((id));
		System.out.println("CREO MEMBER");
		membresialogic.grabarOactualizar(membership);

		return "actualizo";
		
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}
	
	
	
	
	

	
	
	
	/**
	 * FIN CRISTIAN
	 **/
	
	/**
	 * INICIO Stephany
	 * 
	 **/
	
	
	
	
	/**
	 * Fin Stephany
	 * 
	 **/
	
	
	/**
	 * Inicio Alexis
	 * 
	 **/
	
	
	/**
	 * Fin Alexis
	 * 
	 **/
	
	
	
	/**
	 * Inicio Luis
	 * 
	 **/
	
	
	/**
	 * Fin Luis
	 * 
	 **/
	
	
	
	/**
	 * Inicio Betany
	 * 
	 **/
	
	
	/**
	 * Fin Betany
	 * 
	 **/
	
	/**
	 * Inicio Karla
	 * 
	 **/
	
	
	/**
	 * Fin Karla
	 * 
	 **/
}
